package jk.fox.registry.discovery;

/**
 * @author cuichao
 * @Description: NodeDiscovery
 * @Date: create in 2020/4/12 16:59
 */
public interface NodeDiscovery<T>{
    /**
     * 订阅注册模块
     * @param listener
     */
    void subscribe(DiscoveryListener listener);
    /**
     * 订阅并得到注册模块消息
     * @param listener
     * @return
     */
    DiscoveryInfo getAndSubscribe(DiscoveryListener listener);
    /**
     * 发布监听事件
     * @param t
     */
    void publish(T t);

    /**
     * 订阅所有节点信息
     */
    void discovery();

}
